The invention relates to a system, device and method for lost packet recovery used in voice over Internet protocols. More particularly, the invention employs a system, device and method to alleviate the impact of lost packets of voice or sound related data on a listener using a time domain interpolation algorithm.
With the explosion in Internet access and usage as well as the wide spread usage of local area networks (LANs) and wide area networks (WANs) attempts have been made to use these forms of digital communications technology for voice communications known as voice over Internet protocol (VoIP). The primary benefit in using VoIP over the public switched telephone network (PSTN) is the substantial savings that can be realized in local and particularly long distance telephone bills. However, the quality of VoIP has proven to be inferior to that seen in the PSTN. All too often the voice transmission using VoIP is heard with gaps, delays, and noise interspersed in the conversation. At times when the network is experiencing high traffic conditions, this distortion can be so severe that a normal conversation becomes almost impossible.
Unfortunately, the cause of these voice problems is found in the very foundation of how packet switched Internet protocol (IP) networks, such as LANs, WANs and the Internet, transmit and receive information as compared to PSTN. The PSTN was designed for optimal voice quality and provides users with dedicated, end-to-end circuit connections for the duration of each call. Circuits are reserved between the originating switch, tandem switches (if any), and the terminating switch based on the called party number. Therefore, the user in the PSTN has a dedicated communications line completely at his or her disposal for the duration of the call, even when no information is being transmitted.
Unlike the circuit-switched PSTN, packet-switched IP networks provide virtual circuit connections between users. Bandwidth is shared for improved utilization of network capacity, leading to lower costs for network users. Thus, packet switched IP networks were designed for the efficient transmission of computer data and not the transmission of sounds as they are generated. In packet switched IP networks, large volumes of data being transmitted are first divided into packets of a fixed or more often a variable length. The assembly of these packets entails the creation of a header having at least a packet sequence number, a source address, a destination address and the packet size, contained therein. The individual packets containing the header and data are then transmitted, usually to a gateway server, and then to routers in the case of the Internet. The routers take the data and then transmit it to routers located closer to the ultimate destination, taking into consideration traffic conditions, until the final destination is reached. The number of packets assembled and transmitted is directly dependent on the volume of data being transmitted. Also, the route each packet takes to the destination may vary from packet to packet. Further, the number of routers a particular packet must pass through may vary based on the route taken and traffic conditions.
Therefore, since each data packet may take a different route to the destination, the sequence of arrival for each packet may not match that of transmission. Further, in the transmission process, on occasion a data packet is lost due to congestion on the network. When dealing with computer related data, the out of sequence arrival of packets and the loss of a packet is not a problem since the receiving computer can either wait for arrival of the packet or request retransmission of the packet if it does not arrive in a predetermined time period or if the data received is corrupted. Even in the case where a user is waiting for the downloading of graphic information, a short delay or interruption in transmission of the image is not often considered a significant problem. Even the complete loss of graphic data is not a problem since it can be retransmitted and ultimately cause only another delay. However, when conducting a telephone conversation or listening to music, even a very brief delay or interruption of reception is so disconcerting to the listener that it is completely unacceptable. Further, when the traffic on a packet switched IP network increases, the more frequent these delays, interruptions and lost sounds become.
Attempts to alleviate the delay have employed faster modems and communications lines. Further, attempts have been made to prioritize packets containing voice data so that they are serviced ahead of other types of data by routers. However, these efforts have had limited success and have not solved the problem of lost packets, with the resulting gaps in sound. Further, the problem of packets being significantly delayed, and therefore effectively lost, still remains when data and voice traffic becomes heavy in these packet switching networks. Solutions provided have ranged from very simple approaches yielding unnatural, and therefore unsatisfactory, results to very complicated approaches involving mathematical or statistical algorithms or the use of redundant packets. However, these solutions have fallen short of the goal of mitigating or masking the effects of lost data packets in a realtime environment in a cost-effective manner. In the case of the more complicated approach of inserting additional redundant packets in the communications process, this requires additional bandwidth in the packet switched IP network due to the additional traffic generated. When a sophisticated mathematical or statistical algorithm is used to replace a missing packet, this creates a significant increase in the computational load involved in generating sounds and either requires a substantially faster processor or results in the algorithm simply not being able to execute on a realtime basis under heavy load conditions.
Therefore, what is needed is a system, device and method that can use the packet switched IP networks for voice transmission, thereby realizing a cost savings over PSTN, and that mitigates the effects heard by a listener caused by lost or delayed packets containing voice and sound data. This device, system and method should also be CODEC (COder, DECoder) independent, packet size transparent, not require additional bandwidth, not significantly increase the point-to-point delay, not require significant additional memory or processing power, and still provide good speech quality when packets are lost.
An embodiment of the present invention provides for a method of lost frame recovery in a VoIP system. This method receives several packets having at least one frame of data per packet. The frames are then examined to detect a missing frame of data. The method then interpolates a frame of data using a prior frame of data. Once a frame is interpolated, it is presented to a user of the VoIP system.
Further, an embodiment of the present invention creates a device for lost frame recovery in a VoIP system. This device has an input packet reception module to receive several packets having at least one frame of data per packet. A lost packet interpolation module is used to detect a missing frame of data received from the input packet reception module and interpolate a frame of data using a prior frame of data. Further, a frame playback module is used to present the frame of data interpolated by the lost packet interpolation module to a user of the VoIP system.
Still further, an embodiment of the present invention provides a computer program embodied on a computer-readable medium to perform lost frame recovery in a VoIP system. This computer program has an input packet reception module code segment to receive several packets having at least one frame of data per packet. It also has a lost packet interpolation module code segment to detect a missing frame of data received from the input packet reception module code segment and interpolate a frame of data using a prior frame of data. Further, it also has a frame playback module code segment to present the frame of data interpolated by the lost packet interpolation module code segment to a user of the VoIP system.
These and other features of this device and method will become more apparent from the following description when taken in connection with the accompanying drawings which show, for purposes of illustration only, examples in accordance with the present invention.